The present invention relates to Content Management Systems, and more specifically, to data replication in Content Management Systems. Synchronous data replication is an important feature in a Content Management System (CMS). Current CMSs typically implement synchronous data replication in one of two ways: a so-called “pipeline write” and a so-called “n-way synchronous write.” The pipeline write approach includes writing the data in data nodes, one after another. The n-way write includes writing data in all data nodes synchronously.
For example, in the pipeline write mode, when user writes data into a system that has a replica factor set to three, the data is first written into the first data node. After that, the first data node can start replicating the arrived piece of data into a second data node even if the data has not been entirely persisted in the first data node. The second data node can then do the same to copy data to the third data node. The user receives a success confirmation of the data writing when all data is persisted in all three data nodes. The n-way write mode, on the other hand, behaves differently. In the n-way write mode, using the same replica factor, the data is written into the three data nodes synchronously, and the write operation succeeds when the data is accepted by all of the three data nodes.
However, both the pipeline write mode and the n-way write mode have their own associated problems. For example, in the pipeline write method, the latency grows rapidly when the replica factor increases, whereas for n-way write method, the network bandwidth at the client side is heavily occupied by the write application and the write application keeps occupying more and more bandwidth with each increment of the replica factor. Thus, different approaches are needed to address these and other issues associated with synchronous data replication in CMSs.